#pragma once

#include "ADMaterial.h"

// Forward Declarations
class PyrolysisGasADMaterial : public ADMaterial
{
public:
	static InputParameters validParams();

	PyrolysisGasADMaterial(const InputParameters& parameters);

protected:
	virtual void computeQpProperties();
	virtual void initQpStatefulProperties();
private:
	//coupled virialbles
	
	const VariableValue& _temperature;
	const VariableValue& _porepressure;
    // compute gas density
	ADMaterialProperty<Real>& _rhog;
	//compute gas viscosity
	ADMaterialProperty<Real>& _viscosity;
	//compute gas enthalpy
	ADMaterialProperty<Real>& _gas_specific_heat;

	LinearInterpolation  _func_viscosity_T;
	LinearInterpolation  _func_cpg_T;

	std::vector<Real>  _viscosity_list; //to get list of viscosity
	std::vector<Real>  _viscosityT_list; //to get T list of viscosity
	std::vector<Real>  _cpg_list; //to get list of pyrolysis gas specific heat
	std::vector<Real>  _cpgT_list;//to get T list of pyrolysis gas specific heat

};